-- Network Working Group R. Raghunarayan, Ed.
-- Request for Comments: 4022 Cisco Systems
-- Obsoletes: 2452, 2012 March 2005
-- Category: Standards Track-- Management Information Base
-- for the Transmission Control Protocol (TCP)TCP-MIB DEFINITIONS::=BEGINIMPORTSMODULE-IDENTITY,OBJECT-TYPE,Integer32,Unsigned32,Gauge32,Counter32,Counter64,IpAddress, mib-2
FROM SNMPv2-SMI
MODULE-COMPLIANCE,OBJECT-GROUPFROM SNMPv2-CONF
InetAddress,InetAddressType,InetPortNumberFROM INET-ADDRESS-MIB;
tcpMIB MODULE-IDENTITYLAST-UPDATED"200502180000Z"-- 18 February 2005ORGANIZATION"IETF IPv6 MIB Revision Team
http://www.ietf.org/html.charters/ipv6-charter.html"CONTACT-INFO"Rajiv Raghunarayan (editor)
Cisco Systems Inc.
170 West Tasman Drive
San Jose, CA 95134
Phone: +1 408 853 9612
Email: <raraghun@cisco.com>
Send comments to <ipv6@ietf.org>"DESCRIPTION"The MIB module for managing TCP implementations.
Copyright (C) The Internet Society (2005). This version
of this MIB module is a part of RFC 4022; see the RFC
itself for full legal notices."REVISION"200502180000Z"-- 18 February 2005DESCRIPTION"IP version neutral revision, published as RFC 4022."REVISION"9411010000Z"DESCRIPTION"Initial SMIv2 version, published as RFC 2012."
REVISION"9103310000Z"DESCRIPTION"The initial revision of this MIB module was part of
MIB-II."::={ mib-2 49}-- the TCP base variables grouptcp OBJECTIDENTIFIER::={ mib-2 6}-- ScalarstcpRtoAlgorithm OBJECT-TYPESYNTAXINTEGER{other(1),-- none of the followingconstant(2),-- a constant rtorsre(3),-- MIL-STD-1778, Appendix Bvanj(4),-- Van Jacobson's algorithm
rfc2988(5)-- RFC 2988}MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The algorithm used to determine the timeout value used for
retransmitting unacknowledged octets."::={ tcp 1}tcpRtoMin OBJECT-TYPESYNTAXInteger32(0..2147483647)UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The minimum value permitted by a TCP implementation for
the retransmission timeout, measured in milliseconds.
More refined semantics for objects of this type depend
on the algorithm used to determine the retransmission
timeout; in particular, the IETF standard algorithm
rfc2988(5) provides a minimum value."::={ tcp 2}tcpRtoMax OBJECT-TYPESYNTAXInteger32(0..2147483647)UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum value permitted by a TCP implementation for
the retransmission timeout, measured in milliseconds.
More refined semantics for objects of this type depend
on the algorithm used to determine the retransmission
timeout; in particular, the IETF standard algorithm
rfc2988(5) provides an upper bound (as part of an
adaptive backoff algorithm)."::={ tcp 3}tcpMaxConn OBJECT-TYPE
SYNTAXInteger32(-1 | 0..2147483647)MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The limit on the total number of TCP connections the entity
can support. In entities where the maximum number of
connections is dynamic, this object should contain the
value -1."::={ tcp 4}tcpActiveOpens OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times that TCP connections have made a direct
transition to the SYN-SENT state from the CLOSED state.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 5}
tcpPassiveOpens OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times TCP connections have made a direct
transition to the SYN-RCVD state from the LISTEN state.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 6}tcpAttemptFails OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times that TCP connections have made a direct
transition to the CLOSED state from either the SYN-SENT
state or the SYN-RCVD state, plus the number of times that
TCP connections have made a direct transition to the
LISTEN state from the SYN-RCVD state.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 7}tcpEstabResets OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times that TCP connections have made a direct
transition to the CLOSED state from either the ESTABLISHED
state or the CLOSE-WAIT state.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 8}tcpCurrEstab OBJECT-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of TCP connections for which the current state
is either ESTABLISHED or CLOSE-WAIT."::={ tcp 9}tcpInSegs OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments received, including those
received in error. This count includes segments received
on currently established connections.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 10}tcpOutSegs OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments sent, including those on
current connections but excluding those containing only
retransmitted octets.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 11}tcpRetransSegs OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments retransmitted; that is, the
number of TCP segments transmitted containing one or more
previously transmitted octets.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 12}tcpInErrs OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments received in error (e.g., bad
TCP checksums).
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 14}tcpOutRsts OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of TCP segments sent containing the RST flag.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 15}-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
-- which has since been obsoleted. It MUST not be used.tcpHCInSegs OBJECT-TYPESYNTAXCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments received, including those
received in error. This count includes segments received
on currently established connections. This object is
the 64-bit equivalent of tcpInSegs.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 17}tcpHCOutSegs OBJECT-TYPESYNTAXCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments sent, including those on
current connections but excluding those containing only
retransmitted octets. This object is the 64-bit
equivalent of tcpOutSegs.
Discontinuities in the value of this counter are
indicated via discontinuities in the value of sysUpTime."::={ tcp 18}-- The TCP Connection tabletcpConnectionTable OBJECT-TYPESYNTAXSEQUENCEOF TcpConnectionEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"A table containing information about existing TCP
connections. Note that unlike earlier TCP MIBs, there
is a separate table for connections in the LISTEN state."::={ tcp 19}tcpConnectionEntry OBJECT-TYPESYNTAX TcpConnectionEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"A conceptual row of the tcpConnectionTable containing
information about a particular current TCP connection.
Each row of this table is transient in that it ceases to
exist when (or soon after) the connection makes the
transition to the CLOSED state."INDEX{ tcpConnectionLocalAddressType,
tcpConnectionLocalAddress,
tcpConnectionLocalPort,
tcpConnectionRemAddressType,
tcpConnectionRemAddress,
tcpConnectionRemPort }::={ tcpConnectionTable 1}
TcpConnectionEntry ::=SEQUENCE{
tcpConnectionLocalAddressType InetAddressType,
tcpConnectionLocalAddress InetAddress,
tcpConnectionLocalPort InetPortNumber,
tcpConnectionRemAddressType InetAddressType,
tcpConnectionRemAddress InetAddress,
tcpConnectionRemPort InetPortNumber,
tcpConnectionState INTEGER,
tcpConnectionProcess Unsigned32}tcpConnectionLocalAddressType OBJECT-TYPESYNTAXInetAddressType
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The address type of tcpConnectionLocalAddress."::={ tcpConnectionEntry 1}tcpConnectionLocalAddress OBJECT-TYPESYNTAXInetAddressMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The local IP address for this TCP connection. The type
of this address is determined by the value of
tcpConnectionLocalAddressType.
As this object is used in the index for the
tcpConnectionTable, implementors should be
careful not to create entries that would result in OIDs
with more than 128 subidentifiers; otherwise the information
cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."::={ tcpConnectionEntry 2}tcpConnectionLocalPort OBJECT-TYPE
SYNTAXInetPortNumberMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The local port number for this TCP connection."::={ tcpConnectionEntry 3}tcpConnectionRemAddressType OBJECT-TYPESYNTAXInetAddressTypeMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The address type of tcpConnectionRemAddress."::={ tcpConnectionEntry 4}tcpConnectionRemAddress OBJECT-TYPESYNTAXInetAddressMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The remote IP address for this TCP connection. The type
of this address is determined by the value of
tcpConnectionRemAddressType.
As this object is used in the index for the
tcpConnectionTable, implementors should be
careful not to create entries that would result in OIDs
with more than 128 subidentifiers; otherwise the information
cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."::={ tcpConnectionEntry 5}tcpConnectionRemPort OBJECT-TYPESYNTAXInetPortNumberMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The remote port number for this TCP connection."::={ tcpConnectionEntry 6}tcpConnectionState OBJECT-TYPESYNTAXINTEGER{closed(1),
listen(2),synSent(3),synReceived(4),established(5),finWait1(6),finWait2(7),closeWait(8),lastAck(9),closing(10),timeWait(11),deleteTCB(12)}MAX-ACCESSread-write
STATUScurrentDESCRIPTION"The state of this TCP connection.
The value listen(2) is included only for parallelism to the
old tcpConnTable and should not be used. A connection in
LISTEN state should be present in the tcpListenerTable.
The only value that may be set by a management station is
deleteTCB(12). Accordingly, it is appropriate for an agent
to return a `badValue' response if a management station
attempts to set this object to any other value.
If a management station sets this object to the value
deleteTCB(12), then the TCB (as defined in [RFC793]) of
the corresponding connection on the managed node is
deleted, resulting in immediate termination of the
connection.
As an implementation-specific option, a RST segment may be
sent from the managed node to the other TCP endpoint (note,
however, that RST segments are not sent reliably)."::={ tcpConnectionEntry 7}tcpConnectionProcess OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-only
STATUScurrentDESCRIPTION"The system's process ID for the process associated with
this connection, or zero if there is no such process. This
value is expected to be the same as HOST-RESOURCES-MIB::
hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
row in the appropriate tables."::={ tcpConnectionEntry 8}-- The TCP Listener tabletcpListenerTable OBJECT-TYPESYNTAXSEQUENCEOF TcpListenerEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"A table containing information about TCP listeners. A
listening application can be represented in three
possible ways:
1. An application that is willing to accept both IPv4 and
IPv6 datagrams is represented by
a tcpListenerLocalAddressType of unknown (0) and
a tcpListenerLocalAddress of ''h (a zero-length
octet-string).
2. An application that is willing to accept only IPv4 or
IPv6 datagrams is represented by a
tcpListenerLocalAddressType of the appropriate address
type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
respectively.
3. An application that is listening for data destined
only to a specific IP address, but from any remote
system, is represented by a tcpListenerLocalAddressType
of an appropriate address type, with
tcpListenerLocalAddress as the specific local address.
NOTE: The address type in this table represents the
address type used for the communication, irrespective
of the higher-layer abstraction. For example, an
application using IPv6 'sockets' to communicate via
IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
use InetAddressType ipv4(1))."::={ tcp 20}tcpListenerEntry OBJECT-TYPESYNTAX TcpListenerEntry
MAX-ACCESSnot-accessibleSTATUScurrent
DESCRIPTION"A conceptual row of the tcpListenerTable containing
information about a particular TCP listener."INDEX{ tcpListenerLocalAddressType,
tcpListenerLocalAddress,
tcpListenerLocalPort }::={ tcpListenerTable 1}
TcpListenerEntry ::=SEQUENCE{
tcpListenerLocalAddressType InetAddressType,
tcpListenerLocalAddress InetAddress,
tcpListenerLocalPort InetPortNumber,
tcpListenerProcess Unsigned32}tcpListenerLocalAddressType OBJECT-TYPESYNTAXInetAddressTypeMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION
"The address type of tcpListenerLocalAddress. The value
should be unknown (0) if connection initiations to all
local IP addresses are accepted."::={ tcpListenerEntry 1}tcpListenerLocalAddress OBJECT-TYPESYNTAXInetAddressMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The local IP address for this TCP connection.
The value of this object can be represented in three
possible ways, depending on the characteristics of the
listening application:
1. For an application willing to accept both IPv4 and
IPv6 datagrams, the value of this object must be
''h (a zero-length octet-string), with the value
of the corresponding tcpListenerLocalAddressType
object being unknown (0).
2. For an application willing to accept only IPv4 or
IPv6 datagrams, the value of this object must be
'0.0.0.0' or '::' respectively, with
tcpListenerLocalAddressType representing the
appropriate address type.
3. For an application which is listening for data
destined only to a specific IP address, the value
of this object is the specific local address, with
tcpListenerLocalAddressType representing the
appropriate address type.
As this object is used in the index for the
tcpListenerTable, implementors should be
careful not to create entries that would result in OIDs
with more than 128 subidentifiers; otherwise the information
cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."::={ tcpListenerEntry 2}tcpListenerLocalPort OBJECT-TYPESYNTAXInetPortNumberMAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The local port number for this TCP connection."::={ tcpListenerEntry 3}tcpListenerProcess OBJECT-TYPESYNTAXUnsigned32
MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The system's process ID for the process associated with
this listener, or zero if there is no such process. This
value is expected to be the same as HOST-RESOURCES-MIB::
hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
row in the appropriate tables."::={ tcpListenerEntry 4}-- The deprecated TCP Connection tabletcpConnTable OBJECT-TYPESYNTAXSEQUENCEOF TcpConnEntry
MAX-ACCESSnot-accessibleSTATUSdeprecatedDESCRIPTION"A table containing information about existing IPv4-specific
TCP connections or listeners. This table has been
deprecated in favor of the version neutral
tcpConnectionTable."::={ tcp 13}
tcpConnEntry OBJECT-TYPESYNTAX TcpConnEntry
MAX-ACCESSnot-accessibleSTATUSdeprecatedDESCRIPTION"A conceptual row of the tcpConnTable containing information
about a particular current IPv4 TCP connection. Each row
of this table is transient in that it ceases to exist when
(or soon after) the connection makes the transition to the
CLOSED state."INDEX{ tcpConnLocalAddress,
tcpConnLocalPort,
tcpConnRemAddress,
tcpConnRemPort }::={ tcpConnTable 1}
TcpConnEntry ::=SEQUENCE{
tcpConnState INTEGER,
tcpConnLocalAddress IpAddress,
tcpConnLocalPort Integer32,
tcpConnRemAddress IpAddress,
tcpConnRemPort Integer32}tcpConnState OBJECT-TYPESYNTAXINTEGER{closed(1),listen(2),synSent(3),synReceived(4),established(5),finWait1(6),finWait2(7),closeWait(8),lastAck(9),
closing(10),timeWait(11),deleteTCB(12)}MAX-ACCESSread-writeSTATUSdeprecatedDESCRIPTION"The state of this TCP connection.
The only value that may be set by a management station is
deleteTCB(12). Accordingly, it is appropriate for an agent
to return a `badValue' response if a management station
attempts to set this object to any other value.
If a management station sets this object to the value
deleteTCB(12), then the TCB (as defined in [RFC793]) of
the corresponding connection on the managed node is
deleted, resulting in immediate termination of the
connection.
As an implementation-specific option, a RST segment may be
sent from the managed node to the other TCP endpoint (note,
however, that RST segments are not sent reliably)."
::={ tcpConnEntry 1}tcpConnLocalAddress OBJECT-TYPESYNTAXIpAddressMAX-ACCESSread-onlySTATUSdeprecatedDESCRIPTION"The local IP address for this TCP connection. In the case
of a connection in the listen state willing to
accept connections for any IP interface associated with the
node, the value 0.0.0.0 is used."::={ tcpConnEntry 2}tcpConnLocalPort OBJECT-TYPESYNTAXInteger32(0..65535)MAX-ACCESSread-onlySTATUSdeprecatedDESCRIPTION"The local port number for this TCP connection."::={ tcpConnEntry 3}
tcpConnRemAddress OBJECT-TYPESYNTAXIpAddressMAX-ACCESSread-onlySTATUSdeprecatedDESCRIPTION"The remote IP address for this TCP connection."::={ tcpConnEntry 4}tcpConnRemPort OBJECT-TYPESYNTAXInteger32(0..65535)MAX-ACCESSread-onlySTATUSdeprecatedDESCRIPTION"The remote port number for this TCP connection."::={ tcpConnEntry 5}-- conformance informationtcpMIBConformance OBJECTIDENTIFIER::={ tcpMIB 2}
tcpMIBCompliances OBJECTIDENTIFIER::={ tcpMIBConformance 1}tcpMIBGroups OBJECTIDENTIFIER::={ tcpMIBConformance 2}-- compliance statementstcpMIBCompliance2 MODULE-COMPLIANCESTATUScurrentDESCRIPTION"The compliance statement for systems that implement TCP.
A number of INDEX objects cannot be
represented in the form of OBJECT clauses in SMIv2 but
have the following compliance requirements,
expressed in OBJECT clause form in this description
clause:
-- OBJECT tcpConnectionLocalAddressType
-- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
-- DESCRIPTION
-- This MIB requires support for only global IPv4
-- and IPv6 address types.
--
-- OBJECT tcpConnectionRemAddressType
-- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
-- DESCRIPTION
-- This MIB requires support for only global IPv4
-- and IPv6 address types.
--
-- OBJECT tcpListenerLocalAddressType
-- SYNTAX InetAddressType { unknown(0), ipv4(1),
-- ipv6(2) }
-- DESCRIPTION
-- This MIB requires support for only global IPv4
-- and IPv6 address types. The type unknown also
-- needs to be supported to identify a special
-- case in the listener table: a listen using
-- both IPv4 and IPv6 addresses on the device.
--
"MODULE-- this moduleMANDATORY-GROUPS{ tcpBaseGroup, tcpConnectionGroup,
tcpListenerGroup }GROUP tcpHCGroup
DESCRIPTION"This group is mandatory for systems that are capable
of receiving or transmitting more than 1 million TCP
segments per second. 1 million segments per second will
cause a Counter32 to wrap in just over an hour."OBJECT tcpConnectionState
SYNTAXINTEGER{ closed(1), listen(2), synSent(3),
synReceived(4), established(5),
finWait1(6), finWait2(7), closeWait(8),
lastAck(9), closing(10), timeWait(11)}MIN-ACCESSread-onlyDESCRIPTION"Write access is not required, nor is support for the value
deleteTCB (12)."::={ tcpMIBCompliances 2}tcpMIBCompliance MODULE-COMPLIANCESTATUSdeprecatedDESCRIPTION"The compliance statement for IPv4-only systems that
implement TCP. In order to be IP version independent, this
compliance statement is deprecated in favor of
tcpMIBCompliance2. However, agents are still encouraged
to implement these objects in order to interoperate with
the deployed base of managers."MODULE-- this moduleMANDATORY-GROUPS{ tcpGroup }OBJECT tcpConnState
MIN-ACCESSread-onlyDESCRIPTION"Write access is not required."::={ tcpMIBCompliances 1}-- units of conformancetcpGroup OBJECT-GROUP
OBJECTS{ tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
tcpMaxConn, tcpActiveOpens,
tcpPassiveOpens, tcpAttemptFails,
tcpEstabResets, tcpCurrEstab, tcpInSegs,
tcpOutSegs, tcpRetransSegs, tcpConnState,
tcpConnLocalAddress, tcpConnLocalPort,
tcpConnRemAddress, tcpConnRemPort,
tcpInErrs, tcpOutRsts }STATUSdeprecatedDESCRIPTION"The tcp group of objects providing for management of TCP
entities."::={ tcpMIBGroups 1}tcpBaseGroup OBJECT-GROUPOBJECTS{ tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
tcpMaxConn, tcpActiveOpens,
tcpPassiveOpens, tcpAttemptFails,
tcpEstabResets, tcpCurrEstab, tcpInSegs,
tcpOutSegs, tcpRetransSegs,
tcpInErrs, tcpOutRsts }STATUScurrentDESCRIPTION"The group of counters common to TCP entities."::={ tcpMIBGroups 2}tcpConnectionGroup OBJECT-GROUPOBJECTS{ tcpConnectionState, tcpConnectionProcess }STATUScurrentDESCRIPTION"The group provides general information about TCP
connections."::={ tcpMIBGroups 3}
tcpListenerGroup OBJECT-GROUPOBJECTS{ tcpListenerProcess }STATUScurrentDESCRIPTION"This group has objects providing general information about
TCP listeners."::={ tcpMIBGroups 4}tcpHCGroup OBJECT-GROUPOBJECTS{ tcpHCInSegs, tcpHCOutSegs }STATUScurrentDESCRIPTION"The group of objects providing for counters of high speed
TCP implementations."::={ tcpMIBGroups 5}END